ADOConnection a CommandTimeout

Otázka od: Blazek Jaroslav

9. 10. 2002 17:22

Ahoj,

z aplikace spoustim pomoci TADOStoredProc proceduru na MSSQL serveru, ktera
trva neco malo pod 2 min v QA.
Jenze pokud ji pustim z aplikace, tak se vubec nebere v potaz CommandTimeout,
vzdy to vyhodi vyjimku (EOleException - Timeout expired) po defaultnich 30 s, i
kdyz je tam nastaveno vic.
Zkousel jsem to i pomoci TADOQuery, ale stejny efekt.
Uz nevim co s tim......nemusi se jeste neco nastavovat u ADOConnection? Nic
jsem ale nenasel.

W2k(SP3), MSSQL 7(SP4), 2k(SP2), D5(UP1 + ADO(UP1))


S pozdravem

Bc. Jaroslav Blazek
Access-IT Ceska Lipa
mailto:jaroslav.blazek@access-it.cz
http://www.access-it.cz
ICQ# : 133673990
+420605/813644

Odpovedá: Bohdan Dudla

10. 10. 2002 7:13

Ahoj.
TADOCommand ma vlastnost CommandTimeout jako public, ale TADOStoredProc a
TADOQuery uz jako protected.
Mas dve moznosti:
1. Napsat si vlastni potomky z TADOQuery a TADOStoredProc, kde vlastnost
CommandTimeout das do public nebo published.
2. Vsude kde chces nastavit CommandTimeout pouzivat vyraz
  (ADOQuery1 as TADOCommand).CommandTimeout := 1000;

Ta prvni varianta je podle me cistejsi.

With best regards,
Bohdan Dudla

Pike Electronic spol. s r.o.
Modrinova 2
300 00 Plzen
Czech Republic

tel: +420 19 72 40 738
fax: +420 19 74 31 738
gsm: +420 732 441 716
e-mail: bdudla@pikeelectronic.com

Odpovedá: Blazek Jaroslav

10. 10. 2002 7:32

Ahoj,

> z aplikace spoustim pomoci TADOStoredProc proceduru na MSSQL
> serveru, ktera trva neco malo pod 2 min v QA.
> Jenze pokud ji pustim z aplikace, tak se vubec nebere v potaz
> CommandTimeout, vzdy to vyhodi vyjimku (EOleException -
> Timeout expired) po defaultnich 30 s, i kdyz je tam nastaveno vic.
> Zkousel jsem to i pomoci TADOQuery, ale stejny efekt.
> Uz nevim co s tim......nemusi se jeste neco nastavovat u
> ADOConnection? Nic jsem ale nenasel.

Tak tohleto opravdu nechapu, zkusil jsem to pustit pomoci TADOCommand

ADOCommand.CommandTimeout := 500;
ADOCommand.Connection := ADOConnection; // ADOConnection.CommandTimeout
nastaven take na 500
ADOCommand.CommandText := 'exec MojeProcedura Parametry';
ADOCommand.Execute();

a vse probehlo v poradku.....


S pozdravem

Bc. Jaroslav Blazek
Access-IT Ceska Lipa
mailto:jaroslav.blazek@access-it.cz
http://www.access-it.cz
ICQ# : 133673990
+420605/813644

Odpovedá: Jan Sebelík

10. 10. 2002 13:22

> Odesílatel: Bohdan Dudla <bdudla@pikeelectronic.com>
> 2. Vsude kde chces nastavit CommandTimeout pouzivat vyraz
> (ADOQuery1 as TADOCommand).CommandTimeout := 1000;

Nevim, nevim.
Pokud neni TADOQuery oddedena od TADOCommand, a to neni, tak to skonci
vyjimkou.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================

Odpovedá: Bohdan Dudla

10. 10. 2002 12:27

>> (ADOQuery1 as TADOCommand).CommandTimeout := 1000;

>Nevim, nevim.
>Pokud neni TADOQuery oddedena od TADOCommand, a to neni, tak to skonci
vyjimkou.

Zarucene ale funguje varianta
TADOCommand(ADOQuery1).CommandTimeout := 1000;

With best regards,
Bohdan Dudla

Pike Electronic spol. s r.o.
Modrinova 2
300 00 Plzen
Czech Republic

tel: +420 19 72 40 738
fax: +420 19 74 31 738
gsm: +420 732 441 716
e-mail: bdudla@pikeelectronic.com

Odpovedá: Pavel Mattivi

11. 10. 2002 8:31

ahoj,
uz sem to tu psal, timeout musi byt nastaveny na connection i na datasetu,
jinak se vzdy pouzije defaultnich 30s. TADOCommand si to uvnitr mozna
nastavi na connection samo, to nevim jiste.

Pavel
ICQ 66792780

----- Original Message -----
From: "Blazek Jaroslav" <Jaroslav.Blazek@access-it.cz>
To: <delphi-l@clexpert.cz>
Sent: Wednesday, October 09, 2002 7:20 PM
Subject: ADOConnection a CommandTimeout


> z aplikace spoustim pomoci TADOStoredProc proceduru na MSSQL serveru,
ktera trva neco malo pod 2 min v QA.
> Jenze pokud ji pustim z aplikace, tak se vubec nebere v potaz
CommandTimeout, vzdy to vyhodi vyjimku (EOleException - Timeout expired) po
defaultnich 30 s, i kdyz je tam nastaveno vic.
> Zkousel jsem to i pomoci TADOQuery, ale stejny efekt.
> Uz nevim co s tim......nemusi se jeste neco nastavovat u ADOConnection?
Nic jsem ale nenasel.

Odpovedá: Blazek Jaroslav

11. 10. 2002 7:26

Ahoj,

> bdudla@pikeelectronic.com 10.10.02 7:12 >>>
>TADOCommand ma vlastnost CommandTimeout jako public, ale TADOStoredProc a
>TADOQuery uz jako protected.
>Mas dve moznosti:
>1. Napsat si vlastni potomky z TADOQuery a TADOStoredProc, kde vlastnost
>CommandTimeout das do public nebo published.

ja uz vlastne potomka TADOQuery mam, takze to nebyl problem, diky...

Jen me zarazi, k cemu je potom CommandTimeout u TADOConnection?
Myslel jsem kdyz to nastavim u neho, bude to platit u vsech komponent, ktere
jsou pres nej spojeny, ale zjevne to tak neni


S pozdravem

Bc. Jaroslav Blazek
Access-IT Ceska Lipa
mailto:jaroslav.blazek@access-it.cz
http://www.access-it.cz
ICQ# : 133673990
+420605/813644